package com.jnks.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

/***
 *  @describe 压缩字符串
 *  @author SUNLIANG
 *  @date 2023/12/20
 */
@Slf4j
public class GZipCompressUtil {

    public static void main(String[] args) {
//        String json = "{\"aoaDeviceId\":705,\"armedzoneId\":161,\"batchNum\":\"1698978056\",\"brand\":\"大疆\",\"brandId\":376,\"coorKeyList\":[],\"coors\":[{\"direction\":42.0,\"distance\":3108.0,\"frequency\":5.8,\"gpsLatitude\":29.581004859443837,\"gpsLongitude\":118.99068624663445,\"height\":0.0,\"lastCoorDate\":1698978804165,\"lastingTime\":19,\"latitude\":29.57844,\"longitude\":118.995685,\"speed\":0.0},{\"direction\":60.0,\"distance\":3600.0,\"frequency\":5.8,\"gpsLatitude\":29.576388080881113,\"gpsLongitude\":119.00138158504348,\"height\":0.0,\"lastCoorDate\":1698978814655,\"lastingTime\":20,\"latitude\":29.573854,\"longitude\":119.006418,\"speed\":0.0},{\"direction\":69.0,\"distance\":3600.0,\"frequency\":5.8,\"gpsLatitude\":29.571796084885435,\"gpsLongitude\":119.00388604645441,\"height\":0.0,\"lastCoorDate\":1698978843230,\"lastingTime\":30,\"latitude\":29.569268,\"longitude\":119.008931,\"speed\":0.0},{\"direction\":73.0,\"distance\":3600.0,\"frequency\":5.8,\"gpsLatitude\":29.569657288632243,\"gpsLongitude\":119.00472823056477,\"height\":0.0,\"lastCoorDate\":1698978863966,\"lastingTime\":37,\"latitude\":29.567131,\"longitude\":119.009776,\"speed\":0.0}],\"curDirection\":73.0,\"curDistance\":3600.0,\"curFrequency\":5.8,\"curHeight\":0.0,\"curLatitude\":29.567131,\"curLongitude\":119.009776,\"curNeighbors\":[],\"curRegeoCode\":{\"cityId\":29605,\"cityName\":\"杭州市\",\"formatted_address\":\"浙江省杭州市淳安县千岛湖镇千岛湖国家森林公园千岛湖镇核心区域\",\"provinceId\":23,\"provinceName\":\"浙江省\",\"streetId\":29755,\"streetName\":\"千岛湖镇\",\"zoneId\":29744,\"zoneName\":\"淳安县\"},\"curSpeed\":0.0,\"devLatitude\":\"29.557669685686484\",\"devLongitude\":\"118.97417993468828\",\"discoveryPlace\":\"浙江省杭州市淳安县千岛湖镇千岛湖绿道景观飘带段千岛湖镇核心区域\",\"discoveryPush\":1,\"distinctCoorCount\":4,\"driverLatitude\":29.57844,\"driverLongitude\":118.995685,\"droneSeriaID\":\"332\",\"droneUK\":\"6253d29b-3bc3-4aea-8cfa-25b0857cbff6724\",\"gpsDriverLatitude\":29.581004859443837,\"gpsDriverLongitude\":118.99068624663445,\"gpsTakeoffLatitude\":29.581004859443837,\"gpsTakeoffLongitude\":118.99068624663445,\"intrusionStartTime\":\"1698978056\",\"landingTime\":1698978954045,\"lastAcceptTime\":1698978864045,\"lastingTime\":37,\"model\":\"P4P 2.0/Mavic Pro 2.0\",\"modelId\":704,\"passbyForbitArea\":0,\"policeDrone\":0,\"routes\":[{\"areaSet\":[23],\"type\":2},{\"areaSet\":[29605],\"type\":3},{\"areaSet\":[29744],\"type\":4},{\"areaSet\":[29755],\"type\":5}],\"smsSet\":[],\"strikeLevel\":[],\"takeoffLatitude\":29.57844,\"takeoffLongitude\":118.995685,\"takeoffTime\":1698978804320,\"type\":2}\n";
//        System.out.println(GZipCompressUtil.compress(json));
//        String str = "H4sIAAAAAAAAAKS9S66tS3ad15csJzbi/VAbXLNrLtESJREgSImkCoLgkuHuuOgeqR8e31wn8/7xx4xEnOUkoEzdc8/eY8WKmO85xv/409/9w7/8+3/5u//4b//bf/8vf/+nfxf+/Kf/41/+7p/+w5/+3Z/+5//9//7P/+f/+tOf//Tv//kf//Ef/vUf/vmf7I//+v/7X//t7/7tv/3rr3/2z/+i//W//48//cd/+fv/+t/+/p/+/X//079LP+XPf/pP/+Vf/5e/+7d/+Lf/9h/0w3P4SX2kVlPOM6cwPn/+z//0n379CzHOnzliKWWkUXv685/+89//w3/6z/+mH1Z/Qm4ptT//6R/Xn1d7za3FOGrO+oH/+P5pLYyYQs8hj/znP/3rf/n7v9eHCz8h/p9/voUbDe4ZbANsnHGFq3+cugu3tlBnqwewIbQR+kxfgg2AFZh2xlsML8fxxFtrStXFW1oIobfmA9b/tawj/vJ09bVwurOWI+Ae7DaM9gfgHH/0T3SPPMC6Jr3E3PiEHuJcYqo18O38FXH8DcTlg7icj/gviMsDsY54zAPiOFrPPY+a/gbi2NZLka4Rl/BBPM+AowGeD7zjJwThdQ+4tN4TT+oAt+rHxdAXuO3+DnfgZm7jCW4Hbo6PK1yS8IbD+RadnV7pPOAtUT8z1lieF+Iert3grHd9xDvsyeXHdSj5Z4Sc+EcO3NRj01M+vLgyYov6NtvzePvvHq8M5hHvTIa3P0xaqT+tjZRdC1xiz7PLcPmAa4syaXF+iTeDV4/u+N5qsPMt8XF/y/yRnU12RXeT1nsv+ku5+4D1QcNs5TuLVj54yzhatBrMvxVuzF/wVlk0PXD3PqTeh9xJOfkMWUL5vzq+ur75A7fP4/WV5TG47Qk3Cy6QXHPW5RP6OKAd+laEuD8dRiz3eC16qPPokOvHwQnwA27/0Wfw/VtsY/SeUyku3il7FmqRy37irfd4G3iBfQRcDXCLT8BTzy3ITbn3IczY5ZHzAbF8ew5xeW/x3lt87EMd7Xx/i9mH2vofgFv80Vfun3CJY5SSk2/PpuKHkPTpn+4i3x/wMO9WWjnjjebeSnlc4JZ/eir+e2t6DW3Oj7Hz3ptCjDHr0/7mcY/X4gddqbO/kOMV3lAeEU/rPzrElFy8Q9FMrOPw4uQtJ0FafgIu9wZY9jLPpHdwBKzYRYDbDE/A+iOFFdEDXKe5C9/6dkVuM8XUnvc33YcPzeCO1I/3Qb4auCM97m+PP/Ko7vEWvKUM7MH8ylfri5GFaN8ZCHtv+l9H9ybfB9w+Hu6tZ8HNPtyYFSPoPfjhL2469jL7M/wN9/a3jA/c82X4C9zn6RJNRheuDGPQjQh/A63C+cVb/EYsWexwR4hntN3uQnjEkoPouvtoo5Ir/WE/3YXAL41lgXtvG0oxuOXsjPF84C2PyzCK4imlYL6zUDhOCnewvh1TrjuDp/kD8f3tLZ/X1o65RW7FAD9uw2g/Qeb1gFfOUt9G9FOhzkPp+mlLbjF/F+7s59dmuZBM0BPw+FE+6dsy4R0jzRPeXGS2e12Mw+/gbWZ7Uz0WS3IfZnvTI3qY6SeV4OPNoSjArWH6eBVEh6gP/9116C0Y3nGMzvKw+zvb4/7O+aN43HtvehDy3iPPeXhvdvzyfX8cb7yP1XUUlrsFZSdnX2zBr+W6D7yjxehVd2STBamnenhtXUlqlov643jTdayudzw/iXw/p25mznp6mjPBnTV71ld+Kzf9tNDHofIQSY0VqvyBN/+k2+uQR7NgvdRz9exXKp/aihcf5uQWQ1mI/EFWgnzM5RXIt9AfeMdt7FssHVLs2+L5PvT5yeVfB5zDdFJNRUCE4ymlfDhgGXw9l/J4b+1n3NqHWrp541nH8Uboi+fBtfkIfmPAiWbnhBtl1jKnoj0/Omt8KH2qR3Sm3Oo2fGgxYYDl0Y8FVUWGvLian9UzAMc+9xfX9CdDLjHGXP0bwfkoDE2PK9wVmV4C5iUp+uvBkh0XsKILAAe9/RfgmKmovREnJZQ51iiX4Rm1qtORm4qzhD8S+vHTbx9dbxPEeZqR8RGHrDuhp/c0aoZYUb5T4WmpdqVQTWGPW+LR7VPorwc7Y/wr5PlTbw3b0E/Pucuvn6KIkEjqZYvL61LIolqh5Y1Yt0H/ts7YvcYK5efIHPIDcAw/4/ZayNsqsFQwkk91a6VwRZZCtv7ZxzDIssW7qVDQGElIZV7cvKjWFgKORb/5D8jxOo/TF6vvOzd9UyfEnUqSfLilBgvi0uruPfTPhFlHWKNbaa/U7EYikn4ccvpp14j1cbPiXf24Q/QT9PIV4Mq4boc8W3Qusm6q/nVFNzF6tRNaB1PfD8WuPyBnmZ5LyLFOfWjlgvMUsIXCUxqUaOLr8U2ZkB0ytiBPJUjRCylqDDVF5ZDpUb0W4n6LWJGrzIVStnKwbwoj8SA0gF7XQuf0icteiGUlcqghJLkYB3IhOZ2yfv0PFxKLPOglYv1WXeRM6He6yYEaupArvlshK3aozhlbdSpWGXI3xy96GYpFp4UFf0Fcr8P4WfDPCnF0KX033anPJK78iMshxx999d1xe/orVn4tIXgXWZ9ndEUy+h/LIY/bQ66N7ppStNh8R63fr0iAGEQOdoXMb98h91AU9lf9wOba5KKIL5JelzKekPNlbDFbwtlHiusHxLVM8keF4EsspGRJZnHsN9mCN5pn1QUciUQzznQ8n96tE5lUNbJyEMVmp2uRsYF822O5FrJIsqy7fVMyr+ip0g73bkWeRYGb7I99qX9Y5HnpqLFeiT6ifs/pjKPiDrzZzHVFzAPaE1LaurnIZtTu2YpsKaWOqDyNRboutxKbdHq1h4IKL+6TtlrG9gfeoixSf9e5E7kEGRcCouIZ5KzMpFF9e0RvctO3Ib0M6vhUJ8uhnt0/3QpcWO4r5J66Y497yTg8isCun84KXfV96WrMukQWdw+P56Qk3DzE9H0IQak8jZzqGzGx7t6xVUiH5ZLjidGzx7I4OqjYZUzyE/Gl0xNiXl6i0H9o2ipTUfiSGCOoi3WrVNocxBVXmnIPvXgRso5HIXeiDZ2f9zjdIiYtypSD0qFypew14FPleWdfEefghELKnISlCVL2z5iBmYIxedq2yzK88A6962T5+ukam8lWyDtqWfEKmNPnUPwxuMTR2rwbXutPUB0tjz4S1vj2FusDT5qAbR4aM71jixPmc7VthWpQdvKmTgUvZlovbqsuEdInZejl0WtWYHFnjgW56kXr0s1Tr9kA6JADPcYVciXRdIwFBiwoGpJv9yoWifbqkPmbNT4hXxsLwl89hTxljQ6Yq4Jw4vC5Rm+FkoVTM+bjKztXrOe3nBXYyRinadNjfyAedy5EOYaidUWHbZwioZ47lSO51zFXnydj3nafJ/tTo4xLzQpRPcAhWMed5OaJeN7VsYRY55GZYDgkIcQJNNj6WoYFsQyYU9e06NTSU7/KonCDmliO4dFViu22cKwfr5gix1mDeQgPsoIHsjNd5vVWYJNq2vNp2YpaOIVc3VvBpZiNX5zmAvn2WtB2VSLfLZp1EcvEymTXWts7eKPyuiNWaCXLUk+TjAr5uOWKCOd6yHehxSC8BjHdqwNiK6jT4avpdcZheoAVijAs07xbHPVxqt4Fk0ZfHfDkhShfy6d4XtYgdCq2o76uRP6UnN94S4g6XtnCnrxASL+xBh7xs5UL4lvASgnkTBVTHkbXGPHAIjMzVl6Ilch354iLsj/q/kp2vWhT7y0SXcnp9S8gy6jqlytlKuGUmZLi6xbHadn2cicIUnfEmLZoqed0D7nFQYePx7MYt0sHooiw0IXFSRysG807ksFSx/saJ2tsvSHrXx68LN0O95AzVWtZnzDzcsiXfjpSndbP6J95KRdyZUKIdkGtb8gxOy5Ex6fISdc/Ds9WBKZBdB1pnn0H2XqwUVH26ZD1LKsCvNneLiT0PBwX0rnEgny4FhaTKxaq5Yk3XsabsmxRtyLQPj8YtwouBS4KYN7muHi9mzGqXJ7SE0WUDmImhEjUeEJf+TxaoYoN5aRPEX2ZKZKX9hDzG3GsztNjVO0zDuS186h/6LoEJu/XuOL2kJUkyubK6I/DbE0v3WZhFIXX162IwYuEJhMPCiX1GZ2X12e2kemaQ/smEIrMImeG/w/Tgp3hfVl9mc/8ciE2D78BnjK41kBPhL87XmYFKf7GkBbAlz6Pzk/Rh9XDOgHOhM+sPLytcZxO9XjSgpoh6r89/6EvQI+GOnp71gnrT7+1xhyHPjLh2wlx0L+kz0MXf4VcghdVKCEKwqVcq3mxpkwfk/2Vsv9SJ5yXYRAhm85YhqYeNlCI5/mG9V33lzUmDHYgZ4aeelB4Op1KIZ17nbM+TxvpCflyjmnI+SomY6cgzIOtyE13XJCVP78ush7rZ3fjjVmZNEVcJbRObqowhepHJ+9ZGgv1EnNSDqNjllUu/XAzsoEu5LCvfFo+z0n0lOclWoAKnryLobBYEYkeX29Lv6lcI55T1kLXuR/GQdg40MWQkSv1Vchi6tt5fnpXXNbW3SILU+j6VK3RrXgWsi776YMkrrEJYKmyi1hfA4hlzuKr9FZtA2tDbM15klqv6E1rJ9PmlQ94Ar4cCQEwoSwxuN/qpT6v6EPfcVsB15+S2IHxEGcKIMLlmWTm/AtLTPUxMibE+TISUuxWmbiR3zxVsvQdKFZQxlFCWiEzwu2YC6UIRe9Dh+BeijSKgle9zbW6Oa7vMZGDPGs4ZCFJaUpRqCW/sDiR9sPsnXfC5I16HL17UyydbSdmLGW017bC7aVQkKPIvIxPE9OFrIDfxrXzWqbvNHp9U9Ep/dMH8yA3JvJ4Gks9ttyugckiy7EJsp7VySLHOZRYlNjqGtL3nxqqM1xKyCQPwSiWtwZGcp4j77g8o7fyc1lBjmRkinXI5Q62IrKzoUscQlqs29Ahy5N4fm8qdpB/ie69ILSSK03jOXmu4KLdhm+DqzVDtUVKFzHhrkI3Lt+KeFDgdwBnG2ZXWOm9vMpQetWz632NN++6ppTBGm+hxWPXNFpxW6cS15h+/pBje2464NL0MFxzXO3VNXrdSwX5NhYiNEkWIPSDsdDXq29Xz67Gp3GLjFhkZ91jMsMSaYs2L6yoTFx2FgTTmkvf3gm2DxPp7/BHujtjLC1Z62KsgGubw+noMTwWrY7UpwuZImJkqruvufRtjCwrk5np7rad6GKm10JndSyjN0QC1ZszJXTTg65Vf82DrHi82Kzoc2vptyBXxhyLHn06mLeQ5GdS/hQG/0BMLz2OPdObuFFl3krzne4NDT/dGetupa8AV0vGEymqb9303ZP/Koqey5yeQlo9reDdi1BlgWZkEtF7e8ofqtyifmOIS83iFnLLnUpLOOxqN+v4yTFmm/f9AzGJgy1EbICjTSUoqHfx6suUXWptmZbWGd9aN2UXySaGTst3jcopiYMi9OVW1J+Eu3XyfwuQucXZq7FQkmuVwvUs39SQY9HXziBy7ofKG3PzbCPKAOa8Qv4V8W2QE22Frg+UvKfHEnec8vkh9K8MHKVYBijC8SaPGbu+icLe8hNy/yGjc+reg+2PmKPXbZItJgVrTK2Nr+pYpL7KFfWED266MaDLtn6wdbA/AI8fIhLnWpCXWjXd2wqiUUS7m9rGWJzebShELZbRTepDB8RKXRV2vK3b/GHMtTi3Qt4mNxrE2TNv+hz6E1LhL6uxDDV13sIJrzI6PbyQlneX9JfltpwbQa0iMAXrhpqJNSaFVhRuvioUygaxv6fQt/geTxaKLUoFTPlJOqD7gcdzVkEGk25tBIU7Xh0r5c9WiczJgvg2y4vciaT4Nx/C+SYX1bGffYnbEpNYpe9xm5IPhZFUIKe3KibzQdjR+2dG8ren3QQ46CNTbzIWBBdxZhkk1rGsBgF5puTd4VqzIhHdl+gaY1ydnE+nQLJMWNz6D+ppuJ98KHi3TuoqxDHEZ+iWyk+j/el0birVKwUOxYroO2TaRWyb53We9xqxdUJKbenw7hruX+fFxN0Tsd6K8jnnWlAgb0ymVre4GSvbQ0rUbOT5MSd0iThMyABaVspwmHiTo2P3Trc9PdehZRGJ3LxyxWBftmR2uL22aefpUElPYSmwlOtDliHSr2Z06nAv6EjrVoYZlkAojR+coNs1zbr3fFIvEIrBFroUG6Rl+r9fm7fAgIpi68OwQqMzrfNgDveZNCVlebUNp9ekpyefVmUwPPehD268B/NB8UA+c+0+yD1IbvMhLSUmZFR/0Ct4ANZf50+ceyzjrniy2Cqlh7jXSuWtj+dASLguVvBXUx2U6g+AA5mgIsN1SCinHwode2w8mJTXEVN68SyF7Yp0QtzyxHvdaarNxt2O8yuNUS2zb3FxeJkJteCVKhQs6S/UON0pesad9IkGWxLPV3c7DBKVvky6oYcpLCWA1GHlcpfBsVwEdzg3eHJ8VHVb8gbSyXCVBMuLpue4TbiewtL33MCbT1VN2qiRqoNcxdNI5PoT6YZ7xSuFKJSn3CFTeyz6qL/KMo/a/G3duCl3qzRmDm8OwMkAz/QCzIbjDriRK7LXUr3RvA9gZSV1xGVWut0iprfClSgnpgdB1kNJ7AC29VJMOgw7YluoGWwBuT2mwLA0o4lLuzTfV7oZCU3wSZweHSuSXOKy9PwFuMkPbndihGjj/orasptC6xYTcvUP/cFvb4IMitxBgMmIjnZCwYEgz7J0pAWZ8tTWYlKSOtkBYT7IdR22vlCjnt8ybtMvfYe8DnNcnft8useDmmboocwVcPpsFb9H/RgxHazfHeyaHH0sjP6XrwDXYIZCmc0hmqgs5QmvjH1dAdOQ3rJRxVSVdSZ9Rrc8GPRFQUswbZvysWpzeScUDWMohlEFnBBbLtrp2ayIFdzuNQoGjhLVShrGrrNTfNQZJn/O8Obr/DkP0jsSnHhK75guxtulMV6Won0ae2/EDHkUhgYtJXcQszmcmCmcT8jl0j/L6+pi1ZE+s4I+ZEohYWU9wxqHD1HMG3G1SDp9aPUcwL0SbyjRLU9jnC9NGwxLRED6f/06N3jtiEsYL/eRSt/7pLCo1MD+J3QSfkDBmLMC0bC2HS8fHovsQ4jzZyvjEANNyDjLMrwCYvLgHXHvxGR8K66DLpNOp7XMlsTjsnBljFQCrO/pQC3XKvdcgIk2X4h3y0axOJRoHRkXL4UNxZkhLhHbbetcL0ARS6X0f8o6FDJOi4nDK2ZjhmyLiQc12RZHC8EtWunP4GHNnx3q30/sFBLIZygP7eHAV9GgDw2Mo438QswYxu6fFUYMFkvrmL5/btb9piKz5KKXK3n0aBgGpbZyTDwyX4Oe9st76FyYydwhFyu9Frk9/xbPqPQ2Wt13mbO5LATVOAiEqEwdukvNlruSstZ1jlDZqJx2de4FQ36RXDRHP38mweMcnpFxuV61qSXQhlZYeFq/UnSGpYg2D/+E3H7Yd9k9Hp6OXdfKoIcHObGO36u+3SVwu9xFH9VarPKYJR4hC7GVzmyL+1lua2Hund2RIYNR2pRcioJOJ4tMls2Tb3rR7IAIcVX6eKAowH3BG1fKWDKmRCUkxT3U1EerbKO7zGJyOZOWofL25xrhfR/B6hOwtx0zvB6nlQd1wM8T1p99enpvuFSkkhJGXQsXsML9GaCCGl91apQYUs+UkzqxQzcaWGz9peUW63ewdOcgxhLw86I7tJJCoHfXQ19nNS/vsO5utb0qhdeHGKgrf9cJKwZaBh/1thOrITtg0iFmlGXh3LK8Elb4uhbOiutV/0GYzvYavYTTnbCtvAjB7qtzzsrQjrgwMs+mq+IyL5onQCysGtWlxn3b+VA+qm+7x9gPdApNiYkCNthdFjPBPAW+fQcsQ6lsJlLodo+41kY3Xk5mCTSvEc/RWcOM50LFgNROX2UO69Dx+GGRbw/mS1EiFRXudJtg89pLjC/8Ktr/4aUv19AVEVM4YRV0nAI3iIp5eeG1ycTLG3t76RNctWLrjx5iRqcoreS2rEjfjicoteNjZwAdnPSwMV/mI9syylR/WPR2DnlYCy/qdrh5tDKvoZ/4i/jp9wtuvRJOAjkf3AcLvAHEIy6D3QzDUpHYIFfFHzK5EP95G2NArpCxtVCWq5xuIVNWEOSIWT9hpuVJ5y2vkOMc+0we03AyPRbpuJEQJqrQKh3P+YR8PXLMIM+0ne1TTM/sLsuaMbyn5/WXd3bgQRdapi0Sw7p9R6IvSHP07zxNcrp8e/JPOkC9vRD8Ad5GpajbrtQ6RahT6V5eyqoqu/Fjuvy1MBJlmWTC/iUQuqSMHqzQZev3Hy8y7iPZ2Oy2BNKcYFN2Wp5YkUpzl/KoBelfyIy3L3wxt4VY/YKBSVY0cDpjRjWpHde+IJbZ5wrs1wJLAY0ZTS8XcS91MJG8nnG/fHn6T7Zd/n4a9m/MiVDuLu2FmAuzmzfGzJnqhGnZH1Hg3VF1TEswdFvDUtZl9zjb3z94vWAjFePJagxiNnT26JgqXkyfDN+NLIwbgli0Lbfi1iDPUlmJxUOcEAfrrxinwIqYsYi9hKVQMEM+E2JzCxa0axhc4QEuE8eXL29CyU9pp85DDUspMaouvyLS9eUVZybP5laUfsw53Z5NYuBeuTQcDQt/12UtFoIbIq2ZTxH9sFl3vMU61Z1++LgO4CQPHAqk1h61FGOntTAV0J6N0nRdPaaVP2HDhGf+BDmy+Adlyusij+w0xgbrT3lAs1Hc3i7Fhl8V3nWo4i6qt+tGDKgo8Di6IgPIGF3L7XXKMDLu1qLz9rIy/I8T32NkhRXsdpvmxWPY5hJwDjZ+1XI/dXc7+a/N/aXXGffawx5YdJsq7hDBurkpHReZEaYtl6ZCv7sWUwEFM3d6VvHUaOqzUO+d+UU5JmuBoNIGmZtP0b/0Qx4i994ICdddzXpnkGFvsSQnpxNBYWOIGMRsPb0scnM6TbrdkfV2S9BdxMxfIdCwNvMu55nw8fb0lIEd6GKhbFcsxPbluhmknxg+fYMtVim29eDjDZmo7rNI+cB7eSciwiPkpqfkn3whUTx+u+hM026P3KzH06BTsC7PDpj2+WBu78Hefl/CmnDX2ixi6qdeHnQDVNBG7y+Xp+9mJ6GzQEWhPKVHP2uCM6AU8qZvRkvllUy9JzAqd6oJWfvRJstftHnDWW8bkM1jvmLubuRWbKmnzXfV7RIvVSwik3ls5VG3Vog22puZkPHQPThWtlR+tUQ9ziOWz5LFVXOta467MuGkBUBNiHWNY0mIsuYoJa+AmerdzcRsgW47Q1ZufzdlBqggN3tmpfW2WqGcftoRM+ZwHIYlK420zuobcnaCY2b5TaCkHmpYDT06fdrnPt712jzd8wHirKTrZIpJJIm0xmrYhBiSszfiSTtnEvx/aN53xNkaJPCCfkEKgv5AlfNA/usEuJkYCe2m162AZmkzFNN27RqrVc0dhkX9jInuVlbEl9H8JKQIlDZrOdWwuvGdRTZQ0hty2dulstuVoVN9Z37YpqiDhYia1vLxZW/MFO8oxE5e+AkxSlzxzSsN4LSPKdC9NXYZpYburlhKKPFQP6/zG/+RGaqAJiaf+o+QcctU9NrWtVIhLmlv8bIFaXGOkmm/3J1sSVNHPL55eMq1FBc0eIJOzoNEXoAV15UXYALrLf+Q0+94NGbtPQFHTjfStmpljm9eXgmmeDLrPElqGLXnoKkQ3tei0M/eIRf4xvVn2Z2s4EXoNY/PMsTv3wqoU6jqwbB+Aqwjg+7MejQL4Nh3QTk5MvoygaDBfXgRQZjBpuW6jHfpQEqhcNJmbvHYydONg60mlPhCrDe09x7l9tFzon4U/MiNZbxApPJV4FaI2iDxC6cClukPwS3R08u2kbvspiLBclWNp8ltPlqln8l6Yy38/bitjE+XKRr1mo8YBg7qbivJX/zJkInuZwybW/+IofgpXoChCULkmr95efp7DdZBWsWn5phJ9+nhx/Ayb/LG+6QbM+2M3UUbz3MhM9RtEzlLCeuy1wTzg4KWxhTQ6SIX+jY24fqyb8k0Wt6AZYkLVP4heNwPiXEcSoljnSW8vceVeQHuXC5/o8NbjUS1zNdFzr3ttISTTTBSRn1If/UqKMclCZkr1/itC6kDmgRltIqCT/Ex1OmCHHvL71tR9zSPWlhWfFWx3x7kCHMe4e0MK63UHWJZNZqc7LwcG/+oaQpxCPkVHzP+uFsLeGUGGUtyNYA7RJOfQCjXbzLpxiYjP7uYzo4PmeseYVN5X+SSdlXdyXdSlTUGVyXRlr1Nl7WvPE23SUhjGybR6TiNP3a9Td0Kxr9feWmkq70BLroNyCfF6XI/UEbgz9syFVtvOUFms2lMI6E7mQocjADXdXEXwMnh4pnFCPMSuaGPeMBexo97bZVeXgo5EKpJfR50dRslMmQaOZQVMDJLOyGoHL9eBUS70edd0Zc5kWYqoXyR+huPmY2v1NPeFTu7XOL8jipQcN0NhaLMihQHwNwhLEiag/6VMus3dwK2NtRR5PDOiJFOhym2pDfkUHe1Wjl+1GVGYUbFhRxtTI0z+MZSdFOJIaKsx2thVUg4OJe4AjGauTON6zaMYnTTo7nzhPEjQcwK4DdTTdPowuj8HFevGL+gDCPL/UY8nfVzI2aQzzFKCte2dayl7XD2bx4eKgxyID3HfqDiZWmXyjHraC+dmFn3QQXF8djaGGn0uf6Dbg6M0nP0b27F+NDBdbjEjrN5kDjSkH2L8cwwd3rNycwEAy+D4ps/nac0D/6y+M3TU6gajN4uHecfe4DtF4HKNdgU4jIdJ62wTFe0tOwRmKJ/Hphk3kLNO7xKbnAfDcrf051ggVp4U4svZbS/LLq+8BYEhKGfK564hhArUWu6NGmuiC8rQqYgl5h8TUdToSPhiMNY2/7Bxk/3BSyrF7CKoHuR3CFTXXT0feb4Kg6aRW8byOEkmMdyG7+hBNtxXAyylzS1aeSazKS7hUIFVJP1qLmQVdxnINNYaNFU6qdpN2gLhDgPc3FrIBR24S4LdUiWQzDFcQcyc/CVjZz02zc5Q8ZF3otE9nEHHW7imNs7rIhUrXe8suzZRFqm76Ur+6itMIXy+0kT/InslivnLCdOKUYOSIByeTH8f0K33VTgkSYKJslWPRzIMAZ0CpxfFLwFudokr+5WOFVYFI/arcgpve0xRYcNMrEvZDhoXbu3oqBCwjJgjN/cCsidIUg9EjRh+yAQht07vwMLx+eNbFsT1AP9SEg/berXthK+qAnJ7QSGCRvLmgd2dHOplJ5Cy2/E8ix7RI+C4dR7VmzhyRLCDAG5EIMPXxgLWm5833DypdPANIwkNgI5yxuy/rO76aG3N3h8yad/KHoYrHWH8I2twDoqQK6lHIdBrBGSbMalvAB/xi7/8e1IFZjCTe9L8Cqw6ji9X6Jev1vFyuy6smNdTxJ/yCcabWipobwfXnfy0gkFUjeJKk8ilgEDRbYDfZ/fLxQKb2Zis7FJd0RM4ROCjZ5fDkQv3klMUezKiKKG6I7F2kgwQ6blRdt9+fKMmwkldGhXT5DhtIpWfHrHbr1v9VjKbZB2M57T3EEsKlwIspT+5DC9zUKglJbd+uzbnCos8jCUCiPbxFuqtzMTwsgxUOJlJsYrFjKcOGATtSGf3y2xZNbGTTwDReOTE6kDkxxbHe+bkauNvbwhd+tmo9CV3MscYVBDGPolpnBp4bLefCJdjGe6GPrWwvzuOAXEdcs7HMLO014x3QhPEl2QKVGyelPq74fJ1CAnJHYI1p+POUF1F/OWUsMot18MJlM71J2/eCJ2yFAZoH73qgxdQi50RJEYnPW0FdJg7KUVl95mGfPwTkYgdU7MAAzk1F3IpFbQZZe01i2u8r2MABT5Xj4W6tmV4IzDi/OYa7FLuWc44GVcjLjdZaGLJHumaB2/eXzKvMio8/hknz7iRkuGbf73ESODtiOe0dgdLQR3ETczy9mild9/eyyIA1kv/LSt0FAlTfBmzVdKPWrc6CtysEnaykJGcDuRsqUy2DOP3uvvV1ogQci0nHI9DhUqOsT3sVj8uha0f9/JSCaw0iH2WbJLVMCcPX9UnusV90esQyKlznoFx4eXaUEiohtetoK4ZrcVqVEis6U3l6dAVk/hUB/hKx+idJpfoTt1pMKCzCwhdFJfByyzt6kp4Pw71X/WKqsX1geIpRkr7zV9dSVamKyooRR78iAyrx8lk/k6YiR6nDNGwpC114+IiAOZAQEFTLV8UWihx4V0bsPIHasW2YYiGPt9xUOCFN4hHL4fhVKFwCP4iCPDXzm9aKUvzxg+UKgK+kkyj49ToBSUj37ZNt3rLdmzHiQuIvk8BbTRq+08rzyxl5cYhr+abHDqmDaR5iNQl98K9C3EbVw6mzwVl2y6qiuBUg0rl+FVFLoMNvVxucNsWp1iTdIUyEDru37cxtYx5WJRPWZuy78O6N1Zp+K1CXIZ0NNfwRDleLy/8UPNnMZLY5zd1G1oEwli5u9gM/YnCuWBmrFlzPRVTYi1IE441r8BuUSOWKbtVWBRdrQtVhDasZHKNpo/dcNw2ZgZ4vKv4szOtE0ynqCDGkhrpr4RWGh43+LW6lbHwn82FFrgD3TrWCgV0Z7vbe2k3w0VQjxgxAq6eSd95oYGeWH0pKTX1aijbqOmeKQaB2MZydMkhGwdV0R6nr8xbYOhRRjD80EPBIoQ7sXo9d0IaWXjKBDewhU2mSR3YxNCOxjZa31R217WKyBkoGXw6Wv7gHWOxmnyrrvV8SESfyGGaCMgaJTc3WPdmfqR+UtfdE2FuHSjf64znolj9EwEucx3jYX1rN2+wRwIWxATwq4HafxBN5bMbzwI+zwQ75XUTv0xGgTc4/y+xWVnf9SjohyTPymCi5cf1KyJ+EXZjVEHLjHDnyfiPHh6oeZJ4xXJYxmdzJ95TOZN26w+0w1y6t0ZurmsY03kcmC6+ZDF+5g/W7HKgdoWVMz9IrOMoaenN93dtX/671w0eurfPL1p32JjsfiU+VeanAlvtYWaKW/b0ib0FHClrbktPRibGFDOdWWVvhuZZsYOQqLG7sCRiw594dAFfAPcNuJupOwqvLNWafKZ3Ux+j9T8i2WFHCmSgbiN4wo9ykzsrm31WOzxRmCRbauagBO+9gO1m8yfnNbrJt9tmbIRRYG4kTudGQpzhRgq5/RuTXvRMcHxnExyF7e4QhUXrrranwML5ba4gkRbMGMx5vle0OlFi7m9prHkJJx7MQJrG4M0wUccUS3QCT+nsW7F0XM0HyzEqabTiIXcGNV8FnRfA29Ej7u1GBjbxDZf9d8e3DJyNTWsolJ3K+m4f3gOEFgvR/7Vmj7koMvTSz95n7vJ+PM5oYfPxQ+RZV8YcWltpcG+24pF1bHY+oDtZB2PmCUaBs3ei7y4th0yA0Qmf34guB0F7phmlIsPfrdLW8EkGyfcz+bY5qqgKNz1pIeT5nHCCW2ult08D8UVEzl8ZiHpkjM/U3dnOCp8ppQO5ph19N7yW/ix9LFpxGayFWhoWMc4mGMlByzsx+UO3xqKSA+R0K0cmUEVVxAGxRpeJwzBwR7OT6bZilE/u6xjEJFYa/65cVNu2zaRQY9EnnemcsfnEs6ndZ2w/Jg09w64TvuJxdcNCkZqWWJcu+h3bCY5Gl+yfjq7bCfAbAcli5fGCpjF6d2u2WJKUtT26TA6GZOMP55oRXxr1tCoCEYaEE6kx8TOJP9zLcGWHwREtowp8pqajG2G5t+tVgz4rH5J3v52dQXBR7xdUfx92hDCM9n496uLjn6HIoPtVtB1gF+K/Ty/qMlMa4kpf9OTjhC3QJ0n0Cf/TE7GqERNy6VoP6lspGPmPiOUPDm7lziiO47OW2jf1Acj0uFoys8zXJOe5XnOF97JtvOW4UVGYq3eYxs8Tq+UaplyrfBqJFzeidwZmuGmHhsJnWk4EwJdvHNHQWHbwcqfsN/W/VwSIcZgzFb2Vyfh8koU2IOZf2Se7TQKAr1epHJUVsTzQ5j4AoyYtmyb7ot7wjB2oL/b+yIudmuJ9VeNbz8fmFca7C/MM638/nC6VSflh5FeCXKFq8pnq+z115rb78+iQyMdscO9HQvGLPkz4zbXgvz46fSb9icX0VmZjCgXv3NeYRdqYRGGudWbE2AURhj2n8dhJuQ8bPBxPeD5EwnxdsDG2aEvZfj0QZFx4Agr7rOeeUuvKcSVoj5k/MexPLiUGhO8ceEDFWRqzbsVhlJb/zz9WrfYh0szpIRo+n2h3p7Z84/GVxnP7I8xmyL3XHliTBslbCvSmQHoSh+qmnrkjhhNV8XYPb22CC/DiUL8yqZmPWmsCvFAMEiZx1LmRmoEzrAdcamMXpDB+cNBnW2kAoPBV965colTR/L1xEzY2ZJAR6qukGGs8LwdHFVUEqevTRmRKSRgXhfn78Rsso19wKXV2hFvNrw0LJZLASfmPjpv4kUQUMMd6FkK2xCHG81Yy/+Iie960JEVdhb9MbnH1dLyIXAOS3HQxNbnXs1EyA+hpjg/lHYO4oqQwWtIWhH2ZSqq1GCY3Fw+9nShL2IPPaVlgpdjmXKA+6XI+k9Aj9kdypNln2ZL07MAm3/iXaGNhZRibG7keAfETSEhu+N5WU+QBSUA2m8FzA7IKZbDrTDqeNu5WBhB2+UZy9OxtJ0YtDldC6g77eotBP+x/7CQtZvjbPXa0pqv3J4Sk3zBlgKehKD1FnGnYAIvdTuu2VQZsgT72ooXsW0npmB+iBJEL25hkD8l/mnhOVqa7vRVM06DwS395nxaQmd51CRRlwnCOBQGZMcWF+VcwWze9Mdr2BejkdqWItttPeWz3NDQGTnvMSGRwTLaeokRQmsb3RGs87ooxg4//Sl0qz5TGX2OiZWfepmN9jzYIZRnOK+sYCTo5CzbCUh/6iLtdqKMDC8c+mwuX17k60QbNa/LYuUWMevGrLehC3gKjSE7ifSWX5BhHnSiikoNkR3mD2u0ExwrIEBv6MVYMS59NEuE0ZaZ8nEHhBXp9GlvPRGPufOMCzALmlXBdC3Jz5aoLgxUE+s3cRC8nSSkH+Jif04MudK/dJ/+QDx/lKHupg1lylxt1cWP5ilsM7JTl0jzsm+OCqmCIBilzlUgupFMzCz1+BR+CHeacyfGYMyIZnH3y0CcAXs7v7/eJsDM8aMNnU3L+VAZNN+i511XxMr7nDuBgiVxKbfZ7951RDdQrl+6d5feY0xG5hqrHeOkDmMqDQrsFgGelH4CLMk7YJnjOZi1PxXkYXCqRByLZNBtyo/sCfw0Nut/QMwuC6QYab4gk8ftl4LpPdsiCs0Ng1C7tl2u8eQluCUDFWTltAWJmNEPLg/yoiTEqAE8EeefkNKmV4rTT5RhKHD7wwnBuB9KzU9egnTd9UAklUCKdeYDYlTs+Y77KhScUevaJMVx+0FRczRGF8e2Ub9B8Ztx4yVwK7dn3JC7NmG5U00+VUP8ohoT4t7SxrfKLbXhgYLmtJPiNcig4QHsiw5PuC4PMgmO6Fw/speSjeoe57nU5AV4DFm93Rx3bhqtiTA8Hqxmm1lIPOeynPH1rTB3ikRDOs1eoeor25aVqiyHjHJQ2vjc4JE07vM8ZWWcpwfkiNaE7ez8gbhfVlcmXMcgzq2dLjIbySBuy1oQiJvTN2ecUZGgqQ35twIOS1hyF1OR7jImJbWUGOn2hFPGBOBmgJfOB4DlB53EH0FWo/kzTm0X8YDULj1ZpdKl2mPGBlSYwdjOPkIuEGAj0JTWm0xLxkEMq/bAgHuDpXaPK4RvY6ENvtMJZkYimXbiTPm0xIT/4Iwp5Lzsca3bEno2amtsJSwY/stDghUvEpbqSru7x3rQVjbpRoJ2hMy7xPrO1elNxv53yNZQmUbW4gQWmLcALwNmdQne7hDHgGa4kdefLzKxEkqYy+6uEJssrQNZFw0+txKGF1oAmcEC5RJziYVubzI9MRNQZEP7hBnSvFCYQV8xI+fpQLYi0oDUxb8XHSby2sJrQ/rSXES4O0DcwkmOEI1lAOdXKATDsmMs2I8d+u5g1vbtmxIE3Ysxn5Ol1w0Q6pUZxOkjAeNDNgYnZJHyijn26Tw+yJmYE0Sq3Eds4kp1vuht7rwelMApmuTjPOrvMuVD2X2hrEhRv2OOPUS2NBbiTmWBbiwE+W1BSiG2b84YSi7eXh7HZnRlZTbZL+krZFQFHJM8mc+oqC9ML+JsjIkNaKX6i9z20l7IFhd4zBHYPEJmaqVkO5UnZDgA9/hNcCHtZgraI15tZD4MlX2oyn67cwODYy6mU3mWkoagCMh12f/glGWotkNOsGtALcVOsI942ObbXO3b5chxgiwe8dJq2bIPOFWL6i2tWG4yRL074Az5YrSms2uRoQCG5P99Ky4Rs4kG4paP07CZqpAQ5/kyyCjRb+Gb/k25pYJcW/bIu4Q4f0i9vyGsFGCGbRjiSWfAvxKn+XLTELY6J9yxa2XC833Km6wCnF+EPHfptB47O/l6urEehx4zYX8o8m/1dcQl740btuAm65O5uQT/+qcE3AH9jW92/VNGQQut0XCO33KFQxh14vetGGOvstBwZ04y1l9yejtkqKeUNq0czbfXmBAHaolZ2jF8o2MK4vIO3/Tn+4amrcsLlGB3b58bxIr6ELYp7ZtDLph8MuacziUAWBuYE16LFgmqrr1OnyJc7bpwMddDCaCb0LMSsfSNoy7NJMaRMj6tlVa5RO5Fr/kVWmRqVhtkJNGQno2/NAB3yANmb0SGy1en3FEdhI2yH8WZ86i4vT4W6jxBVnjgXOVkOSRscdUbwgKykTQqsf4O8pjWqyfCP95lhgPhdYjvIFlR4x5coAaKrCpm3pvXhNy8oIgy8jNMvh1jQaADweh5JPASYPY0FUbM103OFW7OHXBhED/AEuzxggJ4IGSP2ssXo2PktsHkcUY/WmXmqBP7dv1tMLqpZLwhT1vAQF6mujOx8npoapX33vzlvajwicOV2uux9q14jDBZj6a9DMb41KRemLOpRk86LC7tWLAZVFbh+nKXLxsMiUVnyoKMhp4g623TuC97/pT3MqdxaNIjyz5PGnRrqXXbqfzmkBvEIhS/j8uPtRCSCXB/G7gw9g4Oy1dTITI1Q3e0O2QmY9gP/WY3KJl0J3hl20/D6KVYsX5LUEv0bgS1dPm2kf2VY6QsMsnay+tdVgBQgOF8e0knmk3bpbK1+lE3wHm3xxBzD0bS/ZU8GNfkSMt8+bzbA2YSNEG1fWqRVYomtBZsFH7Buykp4PZlsfSGYzgslirZQVQrvgoWty+uRyPchS2wHW8wuxoBKczNGNe9pZdY8Y/VVi38VkiHBxAd8vyF7zBtQPZV9LFP3oNqpACjw70C1lXalG2QQ8sm/BZT9PeY9KtovaS+rrddzo6l/hFFD3zmI2IbR8K7vRpkMe5Tm3KgfVQls4iCHtpNJdLvMyaEx624vMXUKRSSBDqDR8iobweZt5TeMUXYREwEWR+e0Xn0Hdy+KXuLbHPml8r4ZbA5is1thjRPG9IovnDIjLu8A7e+bzLhOgO86aMFl2s8wAzBOOBo35BKJQsJf623nZ5eZQ4zQLb9Ctxa2DmlaHT3/OEPdJdA9F8VwoP2Fc+fBSyNDcIPvaQPGJq6gObI+yKnstH8m4z9YEUwHHYeWQXgKwgvRpC7AQsZTlJbpSEhH60bIxP0pjdvF3aaGJ2cUlgzPsUdKQzIQdLQyyN/E2dOhLVtr/RY2qwk0aw151eYWaDm2iGjL2aiRhCY+810mrwUmb8hrIR8jXUCCnenmI31a0H+7AEtkIvTg/xItAwYc4bL507puCnyCuVVYrm7FTnkj3UbihiOt6LRVqgrDzaIZaJ2U9FZQy00AJsbBcXGCD3T11+IVeDGApNhgSzuiJeSUJ0hvAGX3Pc+CKS2NINgJnTDIKj0cZZjVX64DIPYy7eHN0+8BPBKmOJtetew2MveDQWMgyUisTAPloKpzYbw5Tel2Gwy3Oz5k/mcIA+YahTbhbetyE73X0en9LUXuxj+GbNPppuz9NLvr3FkNgrI/cjahTCLjAUU4e9rkYxN7Q0ZtmO4FJLvoyPD91YYqF84EAiP5TyMBvV4jydrj9jr/L7Hzp5mGiwKKODIIx6M22RlbMYXz9gtYNp1NnTS0+mIyVkRs05OsLlfCnh7osJNG9PzAMOehOZWepKY3kbHzGI2m5IZ85h/NFuZh3f6FVNgpXc+ULn9ghQn/SR3tcJIwGl4ttfi453Po5kORzPLbsdRIax9CkYv9Y6Ps5dGU9aCnGxMf6qQYkEd/R0e3yVNGW4BqGIgUzyeMtJeoX229pdTFjQH8KB/VW0s3QVM7TMipPjNxo2C2ch8M5zJx7mbZvWdlt5hRZ97My9Rzi4mpeeHmjqigjBdD9/0mbD3yGzRIz7OsDTW/uTBSi9bjXCvdiNsXRTSR56Wf431IBpeaXxTIsSFQLsSKY4dIbOYL9+4OZDoFLshaWJBug/rCTuA4Q6a+SOp9dsdXv0HHqwW0dk6ubwmKwXgrdOEpLGDeEBYwXaFXw0yunwG7V7ypZdxENrwmGMouI9H3Og3tBrfxQqInbc4yOivZAigSfIRU+9cpzav51dyCR9rzBzMCS7Lu4I78ys0rhAQbMY4QybB0lGzhSIHL6T1fZbwTfNRudawNQgii6MpnvbsWk1v7xF2XjTGmhj673pb7rpmQBjCaHrbNzlpNuIM2wo7ddCpQVLcWvdLAUwxdAPMLjUKMGySenjxG4r3wojfnfCwDV7rxhwBk/PTD3+HQEaatiM2hbUye/PGCZnvpovJOGX5IqKoRhzUUGc+Bm3Uz0E8xjuigI1zB0xCGBDW8mM2G27RNS6vfdhLwIl6sDFnHk9YFgRCm/juk0JDssNlaoJ++5x+QTMjWcKozVfk4vLpsHEJsDLoU7aEjrJR8GxFeWPv2THr32QFoTMK6mMeCvcgRv+igZdpwlJuKif5hNqZsoce6932gKRydxzZ1CzgDjrsKFCRh2n6pWV7CZfRfBYRzzVu5WB45pnqqyjP8uJWMrZacIDuYx7enPGq58+K5+/XVIy316hh+/kSw6wBr+QrXkNR0QH8YcLDFvrJaFau2Ddq2EuqVbpWxPAmRHhkZaqUX/ue2tFt382ajW2HCLuYXwXKlFRGfrPDlrvWXWafG/tkE7EnyM1G6/VVvnYqGGLbgmKqAFVRIEzObhCf9Sr0M1t9BsWMid8h7jAoGtlIPmajRIsgHmtVvii3qXvhKpdqtOGo7ByuxYBMCvmSPy5yu92QzsZtYHS47Vhp68M4SRQVvhDTDNivBfVXWsDErb41RqLYllof7u4nXgbFnQ0IEB9Vr3XEdMtow/YVMDPyW2YHsUNltn24DDGBaRJEDZ9r/uEnXR9w//DPwMp5xmuX2FKMP/DWH4g29/1oALfZYdGwNT8XcorwdNcn5HgZxAN5GGQ7rRPk/IEcV8g59H3R37gzCnxPwxvqNsA84WbkkX8FfNlZAnCtBvi49gjgaoDXXFTWCMpUD7Dix9E++kMuYNao81N3V5fiGu9oH7zHKYojXjoBey0zm2yE0sXpjnT/BTAjqeN5wpemGMSfWzxPYkGPV7fcYqhowtirViAOk8F5GJHPDw91zvTdpTB2JxTXj4c8wseyrVPoMp+nS6Fnx0x1CW5uh5QpdbaSFsSXYSbX2N5dCsdGTUdQK5go8Yo4Uxb3DtnGo/Wy/AoFER1nXOLzHl8OdBvi9LkW50sxPpfijVem2LcTQ6YFUi0/zBzoNAXGhr874fIxFPPs7U7XGElyHzHc7Uq/ToYCVT/u+XcHnD+A43HIv2NMLKCIr0t8OmIE0xmx96nbs5GBoHQxv0ScPnxrJ5I8ENuz6+sAuhBTyHb9s8zgVLZ0yD0QR4VpoSyILxP+PxAf6UBYObVL0cf7jP8WYhvc8wFTn7a5tP9fR3wiJbAVWcNb3oatHAwbjdTGfw63OCPEFNviPH4zYhuznQlhezPA9hUszoP1qUPIFlBAOQTyA7Whlp+kNr9zwg25HVaDzwFQNUPc1q02BhMPN4LOQWJ37WCIkRBgu7A8AOfbxONXGA/D5RFwmR/A+QXYo2b6RPGtsrx0iNhIFGc3dYi/4r3kE88k5jjnQYP0DNhOeCXrAnDMY9/Dy0YBXNE+8yWCldxNvFF9TLWln9sbwTgigNv4G2lHNrO2UlMSsqFf6gGWobVbNLwVWACj54Ju4R9lq3wfswUGgaCEHScON6Ys7IzLSq1Rfzo8Xw7iCNlRnYwk+og7m8hy4uWBuN0m/BO+VyHOJy5CKiR2xq8qUP1ByMo5YgRs6HLlUxyPX0HZ+CEaVa7bjI0+7adCcRwQ6zabichaeh1xbDtfaS48PdQrZ3eJjhgvNnXb+qDTbNe2mOYLtrh/tr8OZSCLgKgNvs545E31U3BjMcV7Zqx9xHQuoed85Pv9dtIxt1I/IkztuBWt91E/bOIvwFkfda9uM/4oK0G36dBBqDZ0C4fTXwHPn3YZZNpKO4DDmR8GufHQ5givisrseTgllcywObSFn7qSh1jPVTl0eXJJyRxfNp+bydw1liiODOjdlvBgZ3wVVQpWYYesfxiQjj3MtGWEDgcGc6FbuQ3a6jR5B0Snj9fYWCp039epc/i5g1OQz8SQiqQh7/NvBWls1HtP5Yn4kicvKxaPw9iG27E1SvXRavKrrcg/wrWn/PQQog2yV38YCD9rGdNzCi9fl65Mfsi2ReaRbwUCFRCnV9fDOEqcpod5Dtae/Uuh0yk8j6VNc7nErRtnXMy6c8cB4276iPDavbs0RCROl6YhZRoCbCB+I4yh8fqRaHqQVFxaY91hC9ugOTqeMK9IkGN8NfjDsHGeN2KdQ4eR7qPr5LVHW/tEdt8oczHLYaYCRr5zA7oZ/dVYO9DxZyKS6TR0Z4IMhBV//1qEhPLiulBz6z9KZUmypXjcvTPVSPrlizoQW/KtD6fDT1qnmApyXL9fDrNhfgkwXb65Ek3bKRpN8gmvJfxYi9fGeWEAY2/wUzAZTCP6xWKFW7Nil54D0dcE0nLsaOLpMoxyDOWN/5ORj/G6ECU63efI1LmstlWV3IGPETOD99+IZmKIuw3VzHkkIWARONli3/uEldPvvg4jC3MkwnP+CEXTL/3otX8za8XwGUessPeU3TULgZpc1ItPoySkXPY5IFSPZI3l7fz8jjwVbrUXR/flNc6mVkMKeR4DKjbMJicdX4h73hWBYYOBFTHGw3IKnkOerveXSOJl6pGM4UgvJR9bjYiX2vTd2mrk2dVdswahaL0rVD8Oe2zwftH2Wee3byeXoI8yZblZzoYtmaFIr6JK/DEqlR1xYAdzsK/n1ygSgSjsrqtpu51wRJYDxDWeH16yORUGfN6IrQe8zWSSjzdKCX4+aju8bG2tHKuXNIT5M1PTTIDpOPdKgRt/OF6IU9vlzhNclp+ZZX9jiT1pxQI1pq+Mm2CwAPQXeYED4mrTxa8WAsZtOGOkSgYjNA7kyT5i2Zwp2zfWh3cZtMHggjk2UpIj4miIW32/vNB3+T4ZvFpZYK/EQi5k5NsntIbjG1sRKfHYzHk6tnSV82MsYgxve/xRenxDZiQhQ2gd/b5HMum99pZ1vLzH7KaAmE3dA2DF+LaHUOP7jNPY2Y0pNA6KCIXRQQ+wnoXendLs/t0Zp2HCmTGcNB64cTiQkFJ924q2l4zT6FQqIjJhrkJ7gGQK2vU4v/HRKPUAOMRxTJbMZAeFmW9bUeTYdus22JtGi7v6KpQ2uUm9rcdv7LGebfyIiJ09CKkYiHN7m4rsLG4PFM9LQVF1+EfchzEQ13Wq/3pnCc0pELNLekJsBUJ53fYONZ32aILDR2k/ovH+yLlpcZcIQ9g315jBVhaLYXo8L7JhQ4kd8zsQcqZV6I/GaDIWwTcVOl6eHYn7VxuZk3fVmKk6Wjc0qWzD8R1X5OQccrcxiYTcg38riOqg73xNyV8yPEy9EwC3duakqIiOBDKml3XLSEM4y3fsp0QU0PwcxBZLahv5xXl1uQrNKN40pc923iJlw4I93fKCXGn8bYgbq2psQaXDAAhZlYw7cpXf0CYIrmkkMuR5POX04f95FefRkkhx79hA64GCIaOjh222BMcUneSvGJnGHGbhCqqhJ8zQ0ga2M1/H3GUf99mr9FGP57Gm4a85RlyifurKW3q5Xgz3mymqRnP1PuS/bMmn1/PrOTjkYgpf82C3whc3siV5KDfrOn1+aS4GgmJs9WNLD4DLpNxNgpy3AotD4Eahe0Kb0fKBAWQyNwTJzTdGWUBNITtEIw7zEdtWZs1zvrzIGA77btL1scaMvhq/sAm1ONvVdSW9uqVZNUVa46c4c6xYx183djtjxWg7TRfWhRZ2hI7bRQxBLzFp/o61hM0oaxS2M40NfRJjcH+FQ6Q/Di3MnIrgFA+2Nnx+CuZqU39zgFwauA7xKIg/5HEHxEa8o+/7dS3k4vbOGEToM+uUZYV86h1KpCGWhVDjnu2hgwMmG0E/Eq0Yqx//WnyfsUO+y2JGZTEc2+lTXqFkxsRY+ibbkw9JcM5PVqBOiI34un6YgRbEyXaE34iZ869oIn4UvHbEsC4QL73s8S3iirw8dAblOAtSstHvhPlCPNC22l0IxHl5mhS1T2aD9GwhdRxL7e0ScCqfTdVxrLKUZNIJIW9swSHuc/6JvnxhLzoGV2QlyFsxbwMZ3DcvDzJmI3Op4UzJFLPxoBnR7toFcbZrKOU1Wv99DH8LD+XpSHQQyje3AopBprdse+4AOcPaGVBvePWaYF3eIUPkUAts5MWjp+w0oUzqxiY5f9+H6Hp+KP30tM/EiXT+YSF8BXBzOqv9CTeNOiUzlTtiKP245koJyleZSIFHDqrHPI6sGhkBetgp32WLqXfgUT02WKSIhXwKUIUziLV/RQyrYygmmVHjMRRikMgIQOuraDE//LcvvGzi5orqnqssZiRx0E/39qLfuXTTaBnDyDzPeUhutlrXjE5neXm6/fulgEjFKPfk1HwOaZN1JlP4pheSbJsOxMag5COuXJzS4psaRlmmw3CEM8v61sh6fcDQxsIx/U2ZRQcMZ0mFvefYMGU5FLrgbfEK7p49rqAlja6wIh1fO4E+q5LXWdZdscscRBkxHPtDkdaR9LoYXWk1Q7YAjmWfG0uoY9GXVnjsKyfMkmc3DfQvFkotgcSNkHUdrzE7hkEH8lYhSMZVv0PWs+Ilc139M9bvqsbRkb8J3hL9MVIdZZnHa5GMcV7xwptJ87Oi94asTDZaK6T6tsJYBFsN6678LfNVIskw9naT+vIR88QCtM/vp4cY7Y4YrpVKAyH60jCT+ff4K9f+/beHUjtvr8RxrGVlW+Yuab4Rd0c4cRKqyCFl9p9dwEgx6zaHV7R5WRhKCKGhQ6Dw/KxDEEw5oZVXKKSQuex6QQzcFCNY87ImEBfoZtp4HfGtCoEMlCHO595CmpQLYRt5uZD4i3H5hbiyHG2B3UHrgSkiXY0Xg/Stzorp2Jo1OI6jJ+NYKPEdbSY9sL0PGSfUiJlwfx7EbOQUmT8uL7KVWwmQjNwJbi0fk5BkKnmQSm5eT5G5J1uigBDmkuJleqaz0iHlzV95PaVqJHpDH/q40Y3MJGI25U0LawNlO+BKjQndvnLQWWm0u01e4hvIoSOcXPu0v+8jVpqJmX3Ji+kHKgx1jhjiff2VMbzCt3noxIJUX/uQlzq2JMlULDoaikdhmNIMcX7Tw6DpsF9kVrXpJ9WjuFhlbgFivkVm9VqVSRmGac4pvz0eMuK/gvx21IOpoN1a9GG6XjDA+qJMpdbYeulP8kSGQC8Rx1JNc+4skkcwZHteC+DMKuyuZNMrSRHyKx7bCqsYSgRokj0LLFm2/RIu9KrAjWfKOZgqAJxXTnGkxYrj81jcJTEMxRipPcistzDtuw7GXiGOFNz0YRnJPK5fJaPqgkLuhVhnFR3t3Q53AGrkwSUVB3KAmGbWp1zQ9fQxHopMT/b4vA6brUqvCH2J3XTxYnJ0YRuc4ixsj+jVWCywgN++l2dRKNxm/3EyuEkW8jcyvZJ+Ka6/tROTM0EW7YTDxGT4lULjDGkf2r/HEd8CZiuV4mY8Bpu/2ulj5PfDq64iM/IpEHxBl+a3bkZizFsJb3m+vVtFZhZwbZSFBsYB87AJb8QVX5leY+PDOWVjfIQp218vha8ZoecXO368POXBihAlw3mUm4djGh6CV2NB36QuuKNaGuTwos2e+xNOTDs340RfIuRbfcpRhukuhqMuDOyVpJy6ga8BJ9oNu0XGIJNkoRniXotuY4w2dbsU3u7aTcyD0Lyh0HIU6v7QU5JQvpu9cKbukAcDxoxoVr+lPiDIouf6VS8kjogIt+Jk+oYHyArmGapur4osJinvTb0I0WlIncKX1yFjxp4ImarDF0E9gyVMeVdl1Ufl60rNljH/N2Iq3HviBKecHpeOwJU4jgykD5Zc5jdV79iNfKAxFH0aWyCsUUqfsjXP/4rYfn3fe9MIwSd9Qgi5h1eohwMLm9HffISXarbG35taNzXwA+SBDmJkXH+skGtzNI4L0yaDINhnUGShSYEMjnrZr7h8eh2yOMZf62mYvtuKZCxlcdP6I1mo4USbwoL6BvtW7glzA1HbeFBWKNgcl8YNlYhf3C4nRRjmlCc1y2UWMo6fhhXf8TJnXRRXhOi6aURNcQH6YEu8Oe4yU8UtVOc72d6hVtgzOy6xoXK8IobLbU/zdHlhZ2+IDXguj4CRTm9OT+aue2lxpZYodQrAOCEudEli+4RiT8Sw6jiIkzXSe/HlNGwThqSppgVwuctL9b0ZCbsVy06XwvRXYHWofUUsK+2YNvTmezXVd28kxKQ5AvMvT33jeLkrHZuR8UCId1L064yjJBMtft1iSOm8Z0dzn13x+ZG42RHDS41k6XP8PyrYvoQs78zEbjnx+3VmlRS5hIXeT4ADs8Y74Ew2E6uJqLp4O7y5a4s33F+JaLNRFKMOTZBuHJZyMiuHdOw/hJn7HabLQ9JJ1c29xNAxR+ZRlxvRbs1E+PAto+d3uhMoKiZ8zAswxIP7FaYdzAQiw6aeYSP4QZjyw4jwx6vLl4jroMXRIa8+zbuhRMc+RJhLhze2H4gN9vyDub+CBQnJ3RzT19ky9NKvfc12eSuYgcAWj5MwXkdEK1F0XWQeTCfX4eiOCMz2Cn13crW57IPkmsOyEVIuBa8jU6Sd1uacxyOWH2BcP41lApkiWR37toLycUVTgRpTcjex4vzwjIy2bivky3yJfhCdx1FPwnjKemBmq20uVU2dipJSLyu1hoxSFmb0XQeNQEEtZS4RUL+9E0osZI0pqZ/y6M6NIKIIS1WTGlnoTsxmTOXI+FhpwwGcuMRpvnp5l5dCOcckZEPC8eTtLMGjI7sEFBTJigOXeqK+N2F2I8weLQ5nUOqbmLiYMDS798fNMYg9i8WYaxgPR/fYV+cjq6oylNTp/FyJ5GvaLvqaK11GQMW0ermm45j0o1iJakBd2GGJAfQY90MmjOwjfhb6PMgo4dZA6X7dJ7x8d8WKwjJgfyMhNZFOlBsWzmBBDp/I6w0ZpSBdjBDcBUjG63XDcwn9iymsWBTI24BzOZXmoQoGb8pLd5cooNV9Oy+SQUNxRS3IPWK0xJiEm8+CW73OPagHF8amZOAOydJHqxzeniUwDlP2kzmHHXOC1JpGnU+GTqra2QicX4kQ6MtmtgJWvHpq5emt6PboqYRFWTUoYUp9X+7W+WORYz3sokcCeXQ0Xj2my6QfAtpOI72cxsY+dKvczoU2WHgJnnaPx3C8nFJB5My1b3qalpPmpzm+vse4PKsE1XhaYKGdCplyaMsmb+g/qaZ9xjSyslUHU5XDHe+2EV/l40vDRoAvPV6G2UWIYX8+Adbp0qEsSz86tJ9e91lCsq6K5ERmptLFq3yJAmGu3+DVLWRoI0M5cyq18Su4mHWFy4a6cyPiZLKxMhjnFgcnfABEVfGbsTy9gEwFllL5Ifkg5FCWTeNxuRH1h1G9fT4oMKeJCfkMVjsVWIRy2SyrS6ntNpaneg1NU2gnVmZbxdG/Bt3HE3H5UZ42dssWJhX5biy7Pi0z73giQvAMNMt1hhe7FdD13/005ja5xfJOq10rPwnqLgexDEEaIZx0KRjDMc67B+2jQpRbyxatj4CA+lFnd1ijtLMV90Scf1Co3fltCOMjRziQxPWbHzAnI23QnknpZRhEDAlihHBO7Rrm4OAQakvtSpBNtmtH3LmrIxCt+xxCvZnG9Xh2mKK+skvIH9q8EM/Umo0JhY8Lf+JFtni/E6OafG/VHT+w/BlxR+zjuecWrzNStMhYwGID4XzCRoXVlkqQEMuz1Z3RjT7UmPA0dd9UIF6Q5F7HU0EzXReCjFaF/Suig9M9Dr94/pa+Y4DYP+z5kkwA8jyQW/uWogRlD0Mx0nPTJl8nIIESH7uE4dQQq3S7eXirEkFgvDTtGZNMCpoVusyyXYemI4tRI5a1u3TJL87YkS1sdr3t4xkz1xyo2y+Q2VsJ+4wCk7CZYiayYe61UFrJGhrx4BfD88FIttjjPZPOD6oOoX8YU56IWUjejVu3BaysOMffGCtT+aRd9nXa/y6Nln+CcZTl7n5c7p4R6aj+WUN5Is4jOA6kzVkVDNJd9IY18SAy8I159W/SUoULdTCfj9T7EXK1Ja8535DTHA5hJaJCHWoDxTs+tVStpmIz32rtt8csvwddUzJaIB8ylU/9/rH0zwU59rpfZAYi4euu6cDLU0lbK9Qu36wzKcIZsCnGcqJIa7YPiuxAX+5x0C9nRWdHbHXNnPpnZNWJhNhWt1w4fhEfC4mNYFN2iKemY7D17lHXLTcw15C32jH6UHrKTJ03f3aFR0wN18bJf7smxKhmhv2oH3ncadQQlraVNgbEiRHrHTK8YkriGE/xISsTHjSjv8ijGRegnyY/30/3WOYaLp3RV2IFIR5z1ymlK4I2MLJ5Pm1MQ+tGhuataXwHmGkx5ud1KMcchOFIKwXnF95i8z1vwBHHpGs/sv/wekqzwWL01fS8vO8kLU0ytqccRLaVIZCX7KcQd/RcN8QF3gMqx/MjJ+RkTRl2X+Xw/fczf4bNTPQqtXbSEtejJKKfKb+OmKBmf3aFFd0W58y+0BxfakLm9/Xq7oJjiyG5E7y8E14MVUB7b66A4ZzcSm4Qf5Roy6XZv8Sd6dJpluQLeimjzcymelVPteMG3F+Ksytk1KD22I15w8BXdggrYM7rChdtGOP3DYV+cP/sX/XTtD9E55NZplFeDoTduL0Qy7qjoib2n4J/ygPLp9eTXzW3W8y/5ObGUW7OOpOCPOqiQGiQc90vMsMJqMOM7IbHiFUiBT7jV96DTYGPwNEpOjbe9BTMf73uMX54N24sjvZCMc9dyhPkyTgEX+03S3kIx9MWwy6fnh4DT1bDCvkNue6JdDarU5ISVN8aQ/LDjUkvEsjLl1dbx0PbWNrJRUO7KMQp9PE2FtXJmqwwZrRqvoOeGdkYOayYvrFuNSt0E2JmIY4jec2aR3nEzbzFvb0L8WfrJEVz+iUhOsa048Kag9zGmjUpQ07GIXH0IBldoWjCBy/ICg32yUe9YxgVIEkdvrQG9YbJDtb46iYX5HwTxCPpxGYKyaZNPpaXsSAh3kd4lWKHbjpGKbusWHoUGeL8mb7iVNApfeZL+5kyprFDKMgjLYSmYK77jkIwlmuknT8m10FcoPjv9bsSPbvMfJN59HM3j30NOBvm3MO3vBuMaAS3LTDf6RfpYY0drBt80QYJ6AQrGCoBzedT4yYEW83t7/i49e4EnIw/4CmZsXU7TZHFqMYq9fr6Lg9ZVoDZxgIx7+mQGd1ABnPd7bYsxGje35Cp79I69oss/CBk/XAm3zi+TIMxQc1zvshK10Fc0ttesL+9pyEmHh1ROR8uhx4DVF3J8MYOclf11nVgQpe486jkhjwBUn3GOrggjnvzJsAOyUQ6Q6bu04sjWMUiv27FLWD4V5h2CEe6JgpDyTqQ5WUsZjax+DfkZsU6Qvfgn/G0cl7orw7k5bVII9jb6/VI4Y0foT6gRxrXIouSjn3mJjC3pIvEXr4/FQsxQq7tY31+31kzb8JNnkciCGa7GU7+yHYulazUtnw6sfE6jQB0ukUWhdBQOg+U077YRreyqa2G92NwwRKrzaKn9qoW9m31UXjRCqGQ96nh741/vfaI3sFXpAqBxH5an/44iM5ABFLhIb2uBHNO7/BNgBHXgGcmHCYVIkzZTIOkL+oVvFrwUkU+DlcU1hPYmX0dcBHid6XwI1OBThtrbK7/yNS+OmTmK2/+5ZWItl3Kzn85GWP9dGKF/kqbOOKwNf7THIhbKd4Iwe/7Y0vZj3wLzV/GQTwlBX8MNR/3bDp8NCzgxRdiurlvhwe9NFEKc8X+aDd8ExjF0r8quykgg3SkUlw63Qrro5uUyutWGIXzjhgOn4Tmx0juPS4fYg85xfqN/wgTB0xzexwRI9Qdc1y0bah32ybgGy97VwVOt+wSjjHSV6Yym74yeN9aYuvDsxdU4ykzHQxLQzHxBoyV2d+dwqpRlHnrq3NX8mz6JDM2+1BGu480oRE0/YNwUgRp4yMwUdZJaQDXfdANxdLPln1uLsUtaprKzWtZetL3zw7mR9SZThKgbIhUm8vLm2veEjyhbch/5g+v944VWQgoQ+sXRpiNBkQOWVc5Xd5JDzGSSPcXWmSdnMOtcgqsfuj79k+XEq0uzMhfDNvg92EmaRRJTvHlLCzi5f72c3iyPZCAK5BInUTan3ss/Dtp9jl+323gR/m6WbYbR9c8WfyJ0Nq8Ic+yFYMScQ8jqx2+IX+4VDmSvMvrhK9uBX402a3o9RT6QBjPvLF+z8trIKi827TGhhx61ym7HX8TVoST9kWtcQlYH9S0OvWuwt/YamM2Kefe39Fl3Bpi9DUYnq3FFlxcxGi2xjm+oS8VYmMRoxcbT9RzncQnoQ2R3mdsOtw7ZIpGpCmz++OwjbUFFpvL7/s5/NIvVYmcjrsJdKrRQRrva5FovOz3wnhAWe7LwxUtjYw7NSND/mJrV5gV9+jpdWYKT1c5Qg/BFmN/WWOmoPanV20ZTpG8gjbXvMEuSzRlpa2Hs7tyHhgZUkrKjKfpUgRLQTw3/4H6onPIeQx9Lyw++vsUNiFViam/qLYJsSCjKkiD85Db8TuglQtlg/wRa3lDTjJsNvKS3YYCk/VylXIyLf5+XQUfRaepUTY9MdsYc25ihi/U9ynHjVQq0Y4aCrjZJHb9NAOiKESEb9R4km0g8vpGD6d+tF4mckg1v+aklXwwirMjbmREgza2j5jWIYNY3xSC8FF6CPr7FNVPgKE7tkWIFW/tdStoMlEBZVRFZdfdvYqDWhk1kdZ/OxbCR+lJJ3gjjlsrjNQkcvR3hYKi5f7wCpsUEA0zy+YBnsqvgwD38RVg+X446FM7Ublj99iMlhlM73R0Om7aGB8Qa57BlTBhjJrVqTH6F9vyQpwiHH+yjvM0rtlZ1RfkOXt8W4q+zWsKcrPhK6WktmzkQKbKwLt76RJcJaRo/WSYz8ZxW15Ogl3u2HN5589jE+0SXnk6om1Cev+IB8qK+TUDchlWVATasDP5tGNj1NDJtir726xtS7CCyyB6hIsgucfLCvaA4u1NPH97vJnSaoOE58Tu141LmoW89PIdNAP2bDQxXUrP3RcDgRCOmgebTl88usJoiZ4ASwrHndJBSYX8/D2Sxy/dnx23d+SaoQdyV7mZUUPb5EVpczeSh6FnwZYJaCt8uZgrQzMKxczwrsFma1sLj7knCqvkIL6HTjanH22D+Rt/V6B+TmRypzoQwXlGey3Vd0Tfx17NVBxPyTKe5NuTzeTFWdfa4O1FprBqW6Vxns+YQepIz/9duKJVtyNuEBGXjH6Je5ONIxzW7i90NZPFbCBu/bQCAvWMQqAOo/T7hEvfX17Mpk1iHsLFOyGxihuZ9GXin1v+tLJtWMoFjIYlC/Pv6qvJwO2XWHchNlSTlWm5JwyzCBSk7x7C5aWAAZSyghLUE7GG/XoGQeYWyzenYBxGMOdZbY/IAVzLgEprPKceb9vQmHsUgxDzOfJ1UY0C8Qzl9exgS3PSDzgZke1i/McnqkDXtJaZ4zdRkB57MJKyME/rCZ31aBL58bJtDGYF55D1pcmwIa/h7vgLKKSYY35lKSiFQl+urOx4j9nWS6TG4xVo0rvYvXQIw2p0dErde/wRxyyfjfffLMDin9ic66GWfuLr7t0Wukd+bYAIcd9Zg5EhgjJZXq/3wxnD+aAvItavXJ5pfBJnBRPN8CEbu8ao8R3N97AzjAkyZB/GxNv9UCgjKysb2J+Bxf3bI7g23qAzWYWt2cAVl16HzKbktp+AqkGHeTkJt3stlAUUmxou3wSbslooi6N1eVqaZ5OignjM19PrH4mXN+BkE1gNG+faCramg9GcrBKxlzkp8j3Yt5nPOZPxNiuX7O+bDDHHFtAz6l0JByFH9iHboNEs/RuNWJwqrA6dFYRTygQfWzIimfa2b5vEWBpGu18CrM0umxSzoWi5fegEf78cZB1LaGLSPD494m80zsM7QlZ2tDd22YSdg4paHm7NDa3IkWC/LN/E9PASyL4RAJ7EpOCprgQw/W0sTNjJOWWlRZYYJne8VH662W5i+IaOELk79BGY+qvHcPPDLDlr6eld2GQ9foMM5ZztdQXfJEOhy1zrWEe7b02yPVpB5jYf3p7dTBQ+UnhnTswVOZCRcIGtEmJuDzOkmlRSX3Ird6c89GOh49HjPS7akK0T2Q6rEKwzCm0bJEwE1DDKsuXiA0aQg43YlbLijoYXiaoCXRUW8kRuMxAjEGJqPStiE0/ZEUe+lIpcjs+DxZgf6eV4DqPnn3KXh+g2MSkN78dpNWiwDqp8/jPB+tzWZF9wC4cgPZ8f6i7bpnQQMwHHA3nWhG758oSYggiCUf1Usxg2HAkZVH7tl/5SbnwjbgjtJlrlfoxMxMga9YsDu965agi7WjQyt6MuGvVpiiZllaoE8kcX+w1ZyV5nNfiQ//MH5MKPgLP8tDtbMT7tsW7DlUe8SHckW7Z7XWMGAXa8Rj+T8ddu9NYZQOv6bleDXO7qFXJRxNcoFp04K0a0VFIZ3NpQ0AGjnbVfCpiRoa0o/shxsimcSsVmcXp3ccVA0YorAVvAIXobCU5vZt3b+0ogC7ADZjY3N+S63M4/aTayDSzCPW9FuossRofnkrG+s3YJEjUFZpC2jq6YNtM2cpxgEaOroFSguQ3INIppM6X4rADkn355kTuqQ0Bms+8EmdVIZo7Hy1ZExHade4HwjP6ofPrWO+QWjIJ3kS/JP/nyYij6VqjTKTsdihaDq5cYGhuvQ6aKuImBCjGHD/fB9O3xQOPVGlgL93y6PeSajZhKMcYpPx1ksXT6a3+5EKRwNnrNxHgK+tNssvlEf0xbViZQFxqIcen0OltJyWa7T830AbOnQV7Y5+GBgFbdgaz8sJl6RnAHx8i6mc6myfXEfNmZVuiSiTlZ3DxVWj5S5MYo/WLbaGjd7JBRa1dM3aNPjZ7YFDDJjuc4YdCXdglZYRae2n7GCTLcuUzPrsdcfkLr+2AIe9LR7mpy1wkpsZTK4vGTZDNcpiLDRA8s4uynVASShGDd4LU4BPlPcKwyc/Ow+zIK7UdDQ/5SUf1KD3J5KeQyTYyPwdBjIkLzLb53YtuPo5aX2GWBt05XP7syvFTZM9W+9Gz9y7xdOmpY5iizlLMMb9fzIqHupb3ou2DwdSDLq5Vma6bu/GMq5RNDj6e0pi7YXcVwwK8CxSbF6lOpXpeO+lvKa6d3/DA4uIfIhbWHqFMYPt0xEmNGUP+UcivX8WYziUS2II5NskpeGnvMSwmAt01hcPd6EMsn5SzZlTrq1jJWLDNXis16e41jNh53xs1PiEm17dcs6/56Kt30vHfEFR1QJFy7y8druxnVBITXcfRL49aMZc1YHo9TbwlN9MhU/MIqnX/o2+3FLA4X0ScyBX8mhA24orAkfrHyT6EfmjXIK04xJ+Oh4dOLW2g2FdcSSO2I5dGZu5EhcqlXqUvLNuYl1buexlKU1ScrYwjFnibosdU2ILso/MX+A8vT7qaV5zHXNGDldUc3a6xwcTwZvNq1rUDunCoCE+lHDQWjGo9jWRhDWWNum92KfeETM1lUn3IM8tsPW9Uq2XUZbdYEcVIz/YDjhlvNn528peOU0o8ee3NOmHmCYLVpV2Rcl6klUxpPSxpyJ6FANJsZFGKk7lR7k9GlxiJ/sISbCZ0GJwtJZTC8mj7WewNMAgYdSV5iinxJNS5jz9COMXjlI8fmL7mVnJbZsTR+9LLS7j9SMmFg+ZzhK89b/ZPK9EsB67KOpcAQzphZWFc4QA5GqfiLu+SvkPXX4XByDhlSBaPocvcew4c3na92JXa7fHhm59kkCUd2QthtFbyNZUkhy39sWOFmTuzFR5/SDYqmbuyNZQkyb0/XOLvryOcdzaqcDLSlLFlp5tYN50IoNGEYITR/No/B+2wDLmlJ8eJlvpRBhLxYP5LFyNtSvyKzSiti/Xbn0TGqzOcr40BCxwAP3DTPaYV8yYuO9+8mO4e9OZ5xHkhfxbZMNglxnmPfsxmf5cwMD5XLp1CMA7vnsepI3xH94fwLQSqd/aOC+2CmOrCJ/TpjFjr2e4zWAPPXpWV3TwEtzQR7c8zlm6qbonFmZLrRJp8gY6XMQeX12c3pJNHMhTEtpX+9+0x/8DT1XxP4j0Dz8lowNiZvh7TDaSzWaFIR/Gyjvw657oPHCn4GLHTG2e4BlkWTk05piYzLJV2++aYBp4jszfFW9G4xQB/pZSty3inoTOcjo3H0S+XAgczvUmj8HMXSM74MMtkxQbWUJvLxiG0ktLHW8355dUvwOms5jd1nGCtcwDB3wYLxfHn559IcW40nsfqbT8UgRM8odrely4Rtg3Z3B8yU9IQldvqcINDf0BTIz/zuVgoEt8vcsS0JncoUlQ14EKf4uhS0crdsiTYdPzBAGeNfisLI7PxQ0z4qbpeHHGEc4JBzOEOGUy+wjfXM+3P5YZpz83lGGqUwPtMJ8SFTjhvlk4H/AfmOFZRKEr+DYXhjL/Yh26ZCw2avkGN08n4kovW46vjI7HjGorNeBxHHM7AYl8YiGvF5JW06VWIhHK2WZC7CftjjHvauNB0ZNtEyOYBL1FSpiMkNLHvz8SdcWgv27hW5YJJORKYtMCyplKwsnRtBjnVXRIMGplg/OFmh1Yk0TViROsJC0nzrp2OkQN8+vZ9TOJ8+HGl5RRyNh2DzIYgFoITDsJTrppmPHBiUtGgd3UnwWuDCHKSeXzsNsTRmkaA9Mr/6jOYb1Fc7YuYneoihu246hshkF23E9rzI/fLpBab7SEtbOm6ZkmBS6o6rWPf8YSLRAcw+KkNn/o606XUlLvoC+I5XGsATYkJIhE8vD+mgRn2rL7OmAgz5nYe4kCvpq4vZJ4BgJQOitPUe37ZtdCuGsZj0o8YYWtXsxY51119pafwVtr8hI6eJPfBZmiB7U5IyS1zc3m3mj4Q7Rr/ko4YJEqSFJaxlVCG1H3ozzjWGIZg13uIfMbqwMBblvCQhlzPew5SV06creqzDsm8DfdxcKxVMCe0OBE3vbhJKxZ+4QSZM5i2mdfc43h4xza1fE8jHcTcWNsdc5UuSZaZt45WGTSqTTiPd54ocJ+VTAbLMlT/4NkCmU0Dxn9WCUyM92IKAzbCtFSyC4H1zTJA7tcNKQdufEqp0tcKL8ujaTaNiokwkxHGShh3wWidbBH8iDj8clfPw2CGlKtbdbWnqd4ObsXR4bwmPANyZHUPIJ5/OmHJUSqZ39UcRdsqrlp3GBKLKyF7ezMOd2lQurKs4UectC+Bbj1dIIrH25dSyUVxjLHVpHZmO/YdeztYrxXFQOK+pu6OxnFCm0dnigvj64dVAmxCSg4OpIPthWj+0ZdVNv6O0sClgEbm1aJpnbg2Lllg35q22Xolb71HhXRvIPp4Kx9Omj9Mctg+/9BKCrd2/g+PADClJ2HTDIHaRbClgbSXcHjAMGtSF9E78O4zVU8CBIOsStiE+G3cBEwAPxtJRXHNjYwpFLDrPNyvhbQICryqlzVPDn7WLga52tVX5J2LaoU4mLRNSGLKa7nJemcawBHfKFzSKljFRkiZQPwGGxFQ+N9elakwpkorPbooRiaH5ZxyQDuQqk6ObQV8sfWUpZDsnkzTtMNPUIQ6GaSumVbhU8XdOZa9h6cfxSSaCLF7/gzseTQbgpeN2eysoT6dfkiM+ZNZt4NULoS1dvPBTEKv3IHd4Zgo0DN7TI2+flIFfkG/vBc02xoNCOUiCoASO3lIfY12uUDifc9yjY4YXosnkRneRt7LSSozSXtoPt+ZiWtGO2cvDvYjKjJiqaeGti1b63HluKJ0gN2RDjg5gokBFMKG8Gnl3+kwA7nD5yr6dlqW7MQEnIvqVH6T/FP09ryaUE5FZkJ3xwgoKCZMFk/5krkBX9LqMVaH/iP20GMtot0Ljz2TnOr3SUvCuBXkyZtldMsWwT3ho2jpOeJvloaaSkzExH16eDAKEMZzxOhxEH8NzITUzFdZZGfQeHitU3VbRnhlIuh6sSHAgpF8R4AEyKQVWtM25Yq617428zpY76/bxl9bbBhnOGAR401wqQrfdMUwXUQNln4OxMG+e+C0rN0/5mXBOOpAtM2SY113lRf1HqSXjictoXr6GnIha5CUOhO7sl8ZhgtaLbDBybqXtm1hUkEeH47d0FzDkaBN98fZVDetT/qKHfJDr7jkY8xEMAy/AdboPD4VEll/LcBNTCKjoGM9FVCpez41ZKTvDwH2K3rJNpJfPBPgTsP6KMx/E04tkTdxm9x7Tf2SrdSkJReWM19ZtQGccZjhM29gUKh2eElZlgvJDUduJkIs8v4D/EmHaIRs3c0bMbdmsSLfFWKqWJsF1mJZmOrIRhLfxeniMqzm2AkEteuW+CC95GkPptbyavLd4qZFBLK1U+uCloUiI1hlfIuRAW3ruW/8WV9Ac5DZ7RzwKBDTQls+ln9cuG5CynI2ycO4H+kc0yOhcs6L2GuJFSsNz0wn+csLg7kb1AwGIaWO8S8v0NtNrxOtsgpRTVF+yIgsBDi2+ZqWhJ/cyPVZHGP73Z2KJFGk/khB/M5qn5JRD7iyynSDXAityGasHST8dmTPnkIPMgBXq3PEVW221oDt8NZkH43dlqhZ+1wNi+onI2+elRM8MfbCyzJb/U9OGRLh7RSwIQyGUi4vPu14/HkxhK1cOgSlVHzGLafT8oHlYEecRdnIetkCokkeY6z2LDIFRQUwxvRgsbmN6JTFs1irgOkwTdvibpy3rr9PSsqGt7nM37LDDo0yv1b3ICi0aOoflRX90e8jIz6Hj0fsRsU6k0UAr6YWYITmnLGR8f5Xim+dDRlCmFj46h/WrOouSz0IrPYwD55+yyQb5WBgv3dUIZ/50Sm+VfRBo9zz1+RGQ1tS3qq92qVpcN/RCNd5v+NgOgFmVtqeyXmSC2uK+PWgKFLEEdxyLkRjC59wXqrT7KVPr1WVYr9opRKYbZQI4S+3NELd9Z9PcGpylKI45nhqxwAitfv1GMi8ZRQj1NzpKfsVbyWRGm4UCxXuhcPS0T6TDdSNrmxiv8WoWAz/OrFBLY70Wl2/PhFdz1G9vhxhZCRMDdYybxvfTm7twN/OwsjxsyZfqbUHqilNvCIlqyHLMl14kcOEQrw3tFMB1q1bC87Ym1MIcwj5C1pnk1X2FScer1A+4czppSp39m/pboKWA58zxVBrqJCowGa41Q25GL5vuEZBZV09Fub439aYol/n3ND+zlb9Lx0KXPrAD+FGXdAE3fr+RZ72YIJXWpd3vUbGAFI1dTye4gF8vmAzmy1XfrvOiAtORPgyn9FTBghJYk4p+KQijWLJvNekvBFTdM9L1nhdJxtYwjL/vGSbfIk7wbCqZK4e9MeNiydBcjNfTK4xb73gVPg1ap9HLTgcdeIrtYxFpKtdLm4Q5DCzUD2uHC7jobSs5U1T8jjjLx4y/ITdCKwohzSsN4TxZpNL77Euyd7sbG5CCp9db6imAg7ufykh7RRYMR+/U470z2I93S8WLhpTp2bpanWGpZaU7r9fnnNUU449HTHUusTbWyitzCg5VIewSzTSo6/T0Hwbb+vzaEtayUL1rm0JRBbOAspnD6CarPlwKRWN1BRzxAns+rXTW9BJh9/MAt2DKNulJHZNuQ7fOJdWH1stuB9a//pFyx1n317Y0+7+7xzNacMWoZXriD+NDKYN+2nOGJd8GQvBAZBDXctoF6XyFuhRdNvv17qAlcS6FPqECSaogXgEAeQg4e2MOzxm9fDvEQi1SIWOm3XVwHziJYsHCMoAMp0nemRUpEeveB/iUHbgKFNFO1zc6n4btchDLtq9IlxhFOB1wNyaDj1DvEy3tXA9uRFcTFj1valOJlxLdRL+oL4gvy8dGhp1YdSgnnvSO+BYdr/EKjsNPZs5xg9wYryj8V/LEmUZB2rfYIuBSE7ps3ZjIpa5EYfrTNxQMlys+YKvnecpz/vwlV34h7mXSNu4uSbpeOVNNrDCvA9P1Ls60DotOWNa4H1YfZaQZQB7pcwf+CnhQX9kppmAy4VEo/XM9B40mI/kdi2G7HK7obN4rvWhwPp0OGBJ8tgMXehDhtdH7HW/RPU4oCDenmTcqMtMmtL4MS8dLs8aqOFIJ4XNWLt7BUvKAB7+veMNwkiWG4tgdkWnzlmEHW48sWTIktcw/XgJWBERhKrbDoNswvjNmGdbTpanuoIWKrjKb4noNBHQyY87hUaKYl+P+phJJrlmmCXa6YBN0CwMZlSfc/jNDdtgqhLfAIUNb0Y2G2UQ28u3Wn4DTpX2AHIVgxEg/DoghdqHfMJ9lbiGmYrxndbD2KIwCmKfeNuD/Vpwa62MvaNxugHSO1gYGZvYzZwbxrD3SFo0YwR2lz51zRcklXBKUxl17xpSN/DLaEH9Elum2t0RCLodvVLO+S6ZPEdD+7eF1IQqTv3skbJxoLDLk4D639hdp8aWSeVstpjoZjUsqhQPNmCHOH8QLYHRi9/SoTqhWjF/Tk/40vAwUjWc6l64dHDyjprobTmTHRi9YuRHzmWxwI+gh7YAHC6hFd8Ld2QVwIe6ODwOcb7vmHUaOaRd4nuyv8PZseOOKF27LPYSoULMiGOkmGpSI2UpQ6pofcC/TDDRkh6FNh2ogaJuhHX01DzNWx55VCnZMUEaXysY0K/TB2Zuqj+vQbq8vEmA2UFQPksYArskAp75ehyz74Dw4GclENaJ5U2IWsHNlPuzgfxiIW7wj2XX4UBgf8Jby4St42V9WAx24jO/bnvUBLvFIsRTwr9bhsouLutw0uL0etjKBmz9w63p7W667hh8Ok8SbZU5vrgb7iwzNDM8AONy2cQFs5gHDdj5euw79/6vtWnqiCILwf5kzbubV8zgaItH4IiweDZnsDmTiskNmBxI0HOCkiR4IJgYBlRgvKgcPBiLh3+wu8C+sr3qX7YXuzUjije4tZr7prq6q7q5HdE2c2TppBr9Lj4OLdTlseHhRIB5FqFW4VdUF50sAXNcQHM/6jdk7VK+RYr8WRXq8XLMX+s2g3jjPNiIzFbxOtYMexmt7HDlhNHh8rgMqUEFzhDeKULpGj5emwwtlTikN3JCT9ygZguyqx+5A60jutSegdRltqF43xzhJM4wu6Onj9LI3iKIQil2JmLArn0BgcD0eXNvgdocMzzEzQ6DW+IyCmieDMzV46cO4Qruee2XBQN9RhK9dNRiMAfP4igl4Yf0K2r2ozODWcDCixevAHIH7us5aJ7wCHBGMC4eqh1JXq00YfO4YLwuHsfKTISk3RFhojEksN2SBcTztdp5w+jRZgePFwe04AtE3sWvwlmC8rIzHtsahUyMjSTu+fhwgTNLR+UowWlyb+7FiqxPaf11uwjY4VgGvNHWEo+i2AKmHXQ6+0y04sjKxsAwMAU0tS3ePAFe1zXAPy4ANsTOMV/KvInsDWiG4stAOL0wZV5vYiofXRplkJ1Jlb7W7IgYLrwPXjw2XRYxWcq/CDEIgt66jcQwEXIEs0aFJVXgC/veqp7ZdNdAHeG0eXOTiNuINWJr5qruogD8VrTadqeMj6Wtsy4KjWsQInAwj4d5KPMD1n9nBPL4Bj6/q6SNImhlMHUQeIam8zgWF0cYoox6NC7PKls4QbWyo7cnagvGOpVAV9N8icm4WDRsApvUkr0J10jcOcAw+pi0q5nxlwD6rN2EIpGLbgRk4UNPU+mEN2WZ0cEP4y/o0HQbthmgDnKTcin9pJyvhGop7MFxHwlUWnO/XhHZjjCAe7NOFtsw9w/Uxo+rGmPE+n7IaRZqU6Xy2DHLaPns4FSVZQxPRWC1mrn0Ndd2/job6Hk0EBILJmIhiLl1K8+kcFK+sRlauP8DuJ2ZPWjSfJEBo9Q+Oesefeidb1pS1mBfLSVmmzYWk2SzSTge//97t//p8vr95Rdg928Xfb/90T3d6b95dHH643Ny52N7rHR9fbB12T8/6P79ebv/ovd7rnnwksv7+9/7Bt/Mv76mnt3dE71kp8rWs3UgZkTdqDyENX0mknbJI01JC5whv2TGgVBEQ8cu8nQ5JbdkcEg4xWxs8OPXRnE1ZzazTyNfSYn22lTTS//TNzSKjV9yYV8TKI2qeEwMOaG5OLU6NQri8Am1Bn1VPiyxp4Vsta9D17CE14AUivIXpp49n5+7V6wuyTSRZuyxWO1nepocqrXqZlKs0zTb61hJJoDSU31tJuznTSpb4AWhk7aUxLg8C1LaespaJ51qEZX4urt+5S+8u0pW8KJVHlcmLNF9cnDwYQ6LJozGgUoCQ0CMxDiDl+gp1+ht/Ac3uGoaU5QEA";
        String str="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\nCG9b7Zajts589b8C1Xbo8X8AsedvjuAhAAA=";
        System.out.println(GZipCompressUtil.uncompress(str));
    }


    /**
     * @describe 压缩字符串
     * @method compress
     * @params [str]
     * @author SUNLIANG
     * @date 2023/12/20
     */
    public static String compress(String str) {
        if (str == null || str.length() == 0) {
            return str;
        }
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        GZIPOutputStream gzip = null;
        try {
            gzip = new GZIPOutputStream(out);
            gzip.write(str.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
            log.error("字符串压缩异常：{}", str);
        } finally {
            if (gzip != null) {
                try {
                    gzip.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
//        return new sun.misc.BASE64Encoder().encode(out.toByteArray());
        return Base64.encodeBase64String(out.toByteArray());
    }

    /**
     * 使用gzip解压缩
     */
    public static String uncompress(String compressedStr) {
        if (compressedStr == null || compressedStr.length() == 0) {
            return compressedStr;
        }
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        ByteArrayInputStream in = null;
        GZIPInputStream ginzip = null;
        byte[] compressed = null;
        String decompressed = null;
        try {
//            compressed = new sun.misc.BASE64Decoder().decodeBuffer(compressedStr);
            compressed = Base64.decodeBase64(compressedStr);
            in = new ByteArrayInputStream(compressed);
            ginzip = new GZIPInputStream(in);
            byte[] buffer = new byte[1024];
            int offset = -1;
            while ((offset = ginzip.read(buffer)) != -1) {
                out.write(buffer, 0, offset);
            }
            decompressed = out.toString();
        } catch (IOException e) {
            e.printStackTrace();
            log.error("字符串解压缩异常：{}", compressedStr);
        } finally {
            if (ginzip != null) {
                try {
                    ginzip.close();
                } catch (IOException e) {
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                }
            }
        }
        return decompressed;
    }
}
